package com.cykj.pos.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cykj.common.core.domain.AjaxResult;
import com.cykj.pos.domain.FeiShunSettlement;
import com.cykj.pos.domain.SynchronizationDataDTO;
import com.cykj.pos.domain.dto.TeamOverviewDTO;
import com.cykj.pos.domain.dto.TransactionDetailsDTO;
import com.cykj.pos.profit.dto.HomePageDataDTO;
import com.cykj.pos.profit.dto.MerchantDTO;
import com.cykj.pos.profit.dto.PartnerDetailDTO;

import java.util.List;
import java.util.Map;

/**
 * @author 许晓龙
 * @date 2025/1/21 15:43
 */
public interface IPosTransactionNoticeService extends IService<SynchronizationDataDTO> {

    /**
     * 交易通知
     * @param sy
     * @return
     */
    Map<String, String> transact(SynchronizationDataDTO sy);

    /***
     * 押金返现
     * @param sy
     * @return
     */
    Map deposit(SynchronizationDataDTO sy);

    /**
     * 流量费返现
     * @param sy
     * @return
     */
    Map simFee(SynchronizationDataDTO sy);

    /**
     * 查询交易明细
     * @param detailsDTO
     * @return
     */
    AjaxResult transactionDetails(TransactionDetailsDTO detailsDTO);

    /**
     * 代理今日统计
     * @param detailsDTO
     * @return
     */
    AjaxResult todayStatistics(TransactionDetailsDTO detailsDTO);

    /**
     * 首页数据
     * @param detailsDTO
     * @return
     */
    AjaxResult homePageData(TransactionDetailsDTO detailsDTO);

    HomePageDataDTO selectHomeData(Long merchId, Long userId);

    HomePageDataDTO selectHomeDataToday(Long merchId, Long userId);

    /**
     * 团队交易额
     * @param merchantDTO
     * @return
     */
    List<PartnerDetailDTO> numberOfTeamTransaction(MerchantDTO merchantDTO);

    List<PartnerDetailDTO> numberOfTeamActivations(MerchantDTO merchantDTO);

    /**
     * 首页收益交易激活数
     * @param detailsDTO
     * @return
     */
    AjaxResult homePageTradeIncomeActivate(TransactionDetailsDTO detailsDTO);

    /**
     * 首页查询今日交易
     * @param merchId
     * @param userId
     * @return
     */
    HomePageDataDTO selectHomeDataTranscation(Long merchId, Long userId,String channel);

    /**
     * 首页收益
     * @param merchId
     * @param userId
     * @return
     */
    HomePageDataDTO selectHomeDataProfit(Long merchId, Long userId,String channel);

    /**
     * 首页查询激活数
     * @param merchId
     * @param userId
     * @return
     */
    HomePageDataDTO selectHomeDataActive(Long merchId, Long userId,String channel);

    /**
     * 团队概况
     * @param teamOverviewDTO
     * @return
     */
    AjaxResult homePageTeamOverview(TeamOverviewDTO teamOverviewDTO);

    /**
     * 收益柱状图
     * @param merchantDTO
     * @return
     */
    List<PartnerDetailDTO> numberOfTeamincome(MerchantDTO merchantDTO);

    /**
     * 接收嘉联vip通知
     * @param param
     * @return
     */
    AjaxResult jlVip(JSONObject param);

    /**
     * 嘉联修改费率
     * @param param
     * @return
     */
    AjaxResult jlUpdateFee(JSONObject param);
}
